package com.kakarote.ids.provider.entity.VO;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.kakarote.common.entity.SimpleDept;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.time.LocalDateTime;
import java.util.List;

@ApiModel("员工VO")
public class UserVO {
    @ApiModelProperty("用户ID")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long userId;

    @ApiModelProperty("用户名")
    private String username;

    @ApiModelProperty("昵称")
    private String nickname;

    @ApiModelProperty("用户头像")
    private String userImg;

    @ApiModelProperty("手机号")
    private String mobile;

    @ApiModelProperty("邮箱")
    private String email;

    @ApiModelProperty("状态 0 禁用,1 正常,2 未激活")
    private Integer status;

    @ApiModelProperty("性别 0 未知 1 男 2 女")
    private Integer sex;

    @ApiModelProperty("用户个人说明")
    private String userText;

    @ApiModelProperty("是否是负责人（0否 1是）")
    private Integer isLeader;

    @ApiModelProperty("登录次数")
    private Integer loginsCount;

    @ApiModelProperty("最后登录时间")
    private LocalDateTime lastLoginTime;

    @ApiModelProperty("最后登录应用")
    private String appName;

    @ApiModelProperty("部门集合")
    private List<SimpleDept> deptList;

    @ApiModelProperty("上级ID")
    private Long parentId;

    @ApiModelProperty("上级名称")
    private String parentName;

    @ApiModelProperty("角色ID")
    private String roleId;

    @ApiModelProperty("角色名称")
    private String roleName;

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public void setNickname(String nickname) {
        this.nickname = nickname;
    }

    public void setUserImg(String userImg) {
        this.userImg = userImg;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public void setSex(Integer sex) {
        this.sex = sex;
    }

    public void setUserText(String userText) {
        this.userText = userText;
    }

    public void setIsLeader(Integer isLeader) {
        this.isLeader = isLeader;
    }

    public void setLoginsCount(Integer loginsCount) {
        this.loginsCount = loginsCount;
    }

    public void setLastLoginTime(LocalDateTime lastLoginTime) {
        this.lastLoginTime = lastLoginTime;
    }

    public void setAppName(String appName) {
        this.appName = appName;
    }

    public void setDeptList(List<SimpleDept> deptList) {
        this.deptList = deptList;
    }

    public void setParentId(Long parentId) {
        this.parentId = parentId;
    }

    public void setParentName(String parentName) {
        this.parentName = parentName;
    }

    public void setRoleId(String roleId) {
        this.roleId = roleId;
    }

    public void setRoleName(String roleName) {
        this.roleName = roleName;
    }

    public String toString() {
        return "UserVO(userId=" + getUserId() + ", username=" + getUsername() + ", nickname=" + getNickname() + ", userImg=" + getUserImg() + ", mobile=" + getMobile() + ", email=" + getEmail() + ", status=" + getStatus() + ", sex=" + getSex() + ", userText=" + getUserText() + ", isLeader=" + getIsLeader() + ", loginsCount=" + getLoginsCount() + ", lastLoginTime=" + getLastLoginTime() + ", appName=" + getAppName() + ", deptList=" + getDeptList() + ", parentId=" + getParentId() + ", parentName=" + getParentName() + ", roleId=" + getRoleId() + ", roleName=" + getRoleName() + ")";
    }

    public Long getUserId() {
        return this.userId;
    }

    public String getUsername() {
        return this.username;
    }

    public String getNickname() {
        return this.nickname;
    }

    public String getUserImg() {
        return this.userImg;
    }

    public String getMobile() {
        return this.mobile;
    }

    public String getEmail() {
        return this.email;
    }

    public Integer getStatus() {
        return this.status;
    }

    public Integer getSex() {
        return this.sex;
    }

    public String getUserText() {
        return this.userText;
    }

    public Integer getIsLeader() {
        return this.isLeader;
    }

    public Integer getLoginsCount() {
        return this.loginsCount;
    }

    public LocalDateTime getLastLoginTime() {
        return this.lastLoginTime;
    }

    public String getAppName() {
        return this.appName;
    }

    public List<SimpleDept> getDeptList() {
        return this.deptList;
    }

    public Long getParentId() {
        return this.parentId;
    }

    public String getParentName() {
        return this.parentName;
    }

    public String getRoleId() {
        return this.roleId;
    }

    public String getRoleName() {
        return this.roleName;
    }
}
